package com.youlai.boot.system.model.form;

import java.io.Serial;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDate;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.math.BigDecimal;
import jakarta.validation.constraints.*;

/**
 * 流水台账表单对象
 *
 * @author youlaitech
 * @since 2025-05-12 15:55
 */
@Getter
@Setter
@Schema(description = "流水台账表单对象")
public class SysLedgerForm implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    private Long id;

    @Schema(description = "是否扣税 1是 2否")
    private Integer type;

    @Schema(description = "用户id")
    private Long userId;

    @Schema(description = "用户名称")
    @Size(max=64, message="用户名称长度不能超过64个字符")
    private String userName;

    @Schema(description = "日期")
    private LocalDate recordDate;

    @Schema(description = "业务员")
    @NotBlank(message = "业务员不能为空")
    @Size(max=64, message="业务员长度不能超过64个字符")
    private String salesmanName;

    @Schema(description = "业务员id")
    private Long salesmanId;

    @Schema(description = "被保险人")
    @Size(max=64, message="被保险人长度不能超过64个字符")
    private String beibaoxianren;

    @Schema(description = "车牌号")
    @NotBlank(message = "车牌号不能为空")
    @Size(max=64, message="车牌号长度不能超过64个字符")
    private String chepaihao;

    @Schema(description = "投保公司")
    @Size(max=64, message="投保公司长度不能超过64个字符")
    private String toubaogongshi;

    @Schema(description = "强险")
    private BigDecimal qiangxian;

    @Schema(description = "商业险")
    private BigDecimal shangyexian;

    @Schema(description = "车船税")
    private BigDecimal chechuanxian;

    @Schema(description = "驾乘险")
    private BigDecimal jiachengxian;

    @Schema(description = "强险政策")
    private BigDecimal qiangxianzhengce;

    @Schema(description = "商业政策")
    private BigDecimal shangyezhengce;

    @Schema(description = "驾乘险政策")
    private BigDecimal jiachengxianzhengce;

    @Schema(description = "强险返点")
    private BigDecimal qiangxianfandian;

    @Schema(description = "商业返点")
    private BigDecimal shangyefandian;

    @Schema(description = "驾乘返点")
    private BigDecimal jiachengfandian;

    @Schema(description = "手续费汇总")
    private BigDecimal shouxufei;

    @Schema(description = "应收")
    private BigDecimal yingshou;

    @Schema(description = "利润")
    private BigDecimal lirun;

    @Schema(description = "净费")
    @Size(max=64, message="净费长度不能超过64个字符")
    private String jingfei;

    @Schema(description = "返给业务员")
    private BigDecimal fangeiyewuyuan;

    @Schema(description = "投保人手机号")
    @Size(max=64, message="投保人手机号长度不能超过64个字符")
    private String toubaorenshoujihao;

    @Schema(description = "备注")
    @Size(max=512, message="备注长度不能超过512个字符")
    private String beizhu;

    @Schema(description = "填写时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    @Schema(description = "是否支付")
    private String isPay;

    @Schema(description = "附加奖励")
    private BigDecimal fujiajiangli;

    @Schema(description = "业务员奖励")
    private BigDecimal yewuyuanjiangli;


}
